package com.elective.courseselect.entity;

import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.elective.courseselect.enums.CourseStatus;
import com.elective.courseselect.enums.CourseType;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.util.List;
import java.util.Set;

/**
 * 
 * 
 * @author lee
 * @email 943204006@qq.ccom
 * @date 2021-09-04 19:23:06
 */
@Data
@TableName("course")
@AllArgsConstructor
@NoArgsConstructor
public class CourseEntity implements Serializable {
	private static final long serialVersionUID = 1L;

	/**
	 * 
	 */
	@TableId(type = IdType.AUTO)
	private Integer id;
	/**
	 * 
	 */
	private Integer teacherId;
	/**
	 * 
	 */
	private String name;
	/**
	 * 教室
	 */
	private String classroom;
	/**
	 * 课程表
	 */
	private String schedule;
	/**
	 * 课程表ByJson
	 */
	@TableField(exist = false)
	private JSONObject scheduleByJson;
	/**
	 * 春/秋学期
	 */
	private String semester;
	/**
	 * 学分
	 */
	private Integer credit;
	/**
	 * 中/英
	 */
	private String language;
	/**
	 * 评估方式
	 */
	private String evaluation;
	/**
	 * 上课要求
	 */
	private String requirement;
	/**
	 * 课程简介
	 */
	private String introduction;
	/**
	 * 课程总量
	 */
	private Integer amount;
	/**
	 * 状态 0 正常 1 修改中 2-禁用 3-驳回
	 */
	private CourseStatus status;
	/**
	 * 审批意见
	 */
	private String auditOpinion;


	private CourseType type;


	/**
	 * 更新课表标签时使用
	 * 标签Ids
	 */
	@TableField(exist = false)
	private Set<Integer> labelIdList;

	/**
	 * 标签名
	 */
	@TableField(exist = false)
	private Set<String> labelNameList;


	@TableField(exist = false)
	private Set<String> commentList;

	@TableField(exist = false)
	private List<QuestionnaireEntity> questionnaireList;


	//课余量
	@TableField(exist = false)
	private Integer numRemaining;


	//教师名
	@TableField(exist = false)
	private String teacherName;


}
